package com.itzhoun.staticProxy;

import com.itzhoun.BuyHouse;

/**
 * @author 周楠
 * @Date 2023/01/16/下午 1:29
 */
public class BuyHouseProxy implements BuyHouse {

    private BuyHouse buyHouse;

    public BuyHouseProxy(BuyHouse buyHouse) {
        this.buyHouse = buyHouse;
    }

    /**
     * 静态代理模式：
     * 优点：可以做到在符合开闭原则的情况下对目标对象进行功能扩展。
     * 缺点：代理对象与目标对象要实现相同的接口，我们得为每一个服务都得创建代理类，工作量太大，不易管理。
     * 同时接口一旦发生改变，代理类也得相应修改。
     */

    @Override
    public void buyHouse() {
        System.out.println("买房前准备");
        buyHouse.buyHouse();
        System.out.println("买房后准备");

    }
}
